(in-package :TRAPS)
; Generated from #P"macintosh-hd:hd3:CInterface Translator:Source Interfaces:IOCFPlugIn.h"
; at Sunday July 2,2006 7:26:50 pm.
; 
;  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
;  *
;  * @APPLE_LICENSE_HEADER_START@
;  * 
;  * The contents of this file constitute Original Code as defined in and
;  * are subject to the Apple Public Source License Version 1.1 (the
;  * "License").  You may not use this file except in compliance with the
;  * License.  Please obtain a copy of the License at
;  * http://www.apple.com/publicsource and read it before using this file.
;  * 
;  * This Original Code and all software distributed under the License are
;  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
;  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
;  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
;  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
;  * License for the specific language governing rights and limitations
;  * under the License.
;  * 
;  * @APPLE_LICENSE_HEADER_END@
;  
; #ifndef _IOKIT_IOCFPLUGIN_H_
; #define _IOKIT_IOCFPLUGIN_H_
;  IOCFPlugIn.h
;  

(require-interface "sys/cdefs")

(require-interface "CoreFoundation/CFPlugIn")

; #if COREFOUNDATION_CFPLUGINCOM_SEPARATE

(require-interface "CoreFoundation/CFPlugInCOM")

; #endif


(require-interface "IOKit/IOKitLib")
;  C244E858-109C-11D4-91D4-0050E4C6426F 
; #define kIOCFPlugInInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL,	    0xC2, 0x44, 0xE8, 0x58, 0x10, 0x9C, 0x11, 0xD4,			    0x91, 0xD4, 0x00, 0x50, 0xE4, 0xC6, 0x42, 0x6F)
; #define IOCFPLUGINBASE							    UInt16	version;						    UInt16	revision;						    IOReturn (*Probe)(void *thisPointer, CFDictionaryRef propertyTable,	                    io_service_t service, SInt32 * order);		    IOReturn (*Start)(void *thisPointer, CFDictionaryRef propertyTable,	                      io_service_t service);				    IOReturn (*Stop)(void *thisPointer)
(defrecord IOCFPlugInInterfaceStruct
#|
   (NIL :iunknown_c_guts)|#
#|
   (NIL :iocfpluginbase)|#
)
(%define-record :IOCFPlugInInterface (find-record-descriptor :IOCFPLUGININTERFACESTRUCT))

(deftrap-inline "_IOCreatePlugInInterfaceForService" 
   ((service :pointer)
    (pluginType (:pointer :__CFUUID))
    (interfaceType (:pointer :__CFUUID))
    (theInterface (:pointer :IOCFPLUGININTERFACE))
    (theScore (:pointer :SInt32))
   )
   :signed-long
() )

(deftrap-inline "_IODestroyPlugInInterface" 
   ((interface (:pointer :IOCFPLUGININTERFACE))
   )
   :signed-long
() )

; #endif /* !_IOKIT_IOCFPLUGIN_H_ */


(provide-interface "IOCFPlugIn")